/************************************************
 * Copyright (c) 2007 ~ 2009, 
 * All rights reserved.
 * Version   : 1.0
 * Author    : lengsh@gmail.com 
 * Date      : 2008.1.2
 ***********************************************/

#ifndef _PANDA_HELPER_H______
#define _PANDA_HELPER_H______

#include <string>
#include <map>
#include <iostream>
#include <pthread.h>
#include <string.h>

using namespace std;
class Helper 
{
	protected:
		static Helper *_instance;
		bool  Startup(const char *filename);
	protected:
		string m_sConfFile;
		string m_sConn_Cfg;
                string m_sIPAcl;
                int     m_iPort;
                int     m_iwPort;
                int     m_iThreads;
                int     m_iDefaultTimer;

	public:
		int getPort(){ return m_iPort; }
		int getWPort(){ return m_iwPort; }
		int getThreads(){ return m_iThreads; }
                int getDefaultTimer() {  return m_iDefaultTimer;  }
		const char *getIPAcl() { return m_sIPAcl.c_str(); }
		static Helper *Instance(const char *conf = NULL);
		static void Release( bool bForce = false);
	protected:
		int build_return_message(char **wbuf, int retcode,unsigned &wsize, unsigned &wbytes);
		Helper();
		virtual ~Helper();
	public:
                int Process(char *data, unsigned dlen, char **wbuf, unsigned &wsize, unsigned &wbytes, const char *ip);
                int Timer(long time);
};


#endif 

